package Observer;

import java.util.ArrayList;
import java.util.List;

public class Subject {
    /*
        Subject 对象 带有 绑定观察者到 Client 对象 | 从 Client 对象 解绑观察者的方法
     */

    private List<Observer> observerList = new ArrayList<Observer>();
    
    private int state;
    
    public void attach(Observer observer){
        observerList.add(observer);
    }
    
    public void notifyAllObserver(){
        for (Observer observer :
                observerList) {
            observer.update();
        }
    }

    public int getState() {
        return state;
    }

    public void setState(int state) {
        this.state = state;

        notifyAllObserver(); // 设置状态,表明状态改变, 此时通知 obList 里的 观察者们 整体更新
    }
}
